

#ifndef __MODULES_DEAMON_TFDATAREPO_H__
#define __MODULES_DEAMON_TFDATAREPO_H__

#include <string>
using namespace std;

/**
 * Public interface for data storage;
 */
class TFDataRepo{
 public:
  TFDataRepo(){}
  TFDataRepo(TFDataRepo&){}
  Virtual ~TFDataRepo(){}
  virtual bool PutTag()=0;
  virtual string GetTag()=0;
  virtual bool PutFile()=0;
  virtual string GetFile()=0;
  virtual bool LinkTags(string& t1,string& t2){
    LinkTags(t1.c_str(), t2.c_str());
  }
  virtual bool LinkTags(const char*, const char*)=0;
virtual 
 private:
};

/**
 * SQLite implementation of DataRepo
 *
 */
class TFSQLiteDataRepo{
 public:
  TFSQLiteDataRepo();
  TFSQLiteDataRepo(TFSQLiteDataRepo&);
  virtual ~TFSQLiteDataRepo();

  virtual bool PutTag();
  virtual string GetTag();
  virtual bool PutFile();
  virtual string GetFile();
  virtual bool LinkTags(const char*, const char*);
 protected:
 private:
};

#endif //__MODULES_DEAMON_TFDATAREPO_H__
